function transfer()
{
  //sprawdzenie czy uytkownik jest zalogowany
  if(!isset($_SESSION['zalogowany'])){
    $this->setMessage('Najpierw musisz si zalogowa.');
    return ACTION_FAILED;
  }
 
  //sprawdzenie czy zostay przekazane parametry
  if(!isset($_REQUEST['userid']) || !isset($_REQUEST['points'])){
    $this->setMessage('Bdne dane.');
    return ACTION_FAILED;
  }
  
  //konwersja danych do typu int
  $userid = intval($_REQUEST['userid']);
  $points = intval($_REQUEST['points']);
  
  //sprawdzenie poprawnoci parametrw
  if($userid < 1 || $points < 0){
    $this->setMessage('Bdne dane.');
    return ACTION_FAILED;
  }
  
  //rozpoczcie transakcji
  $this->dbo->beginTransaction();
  
  //wykonanie instrukcji skadajcych si na transfer punktw
  $query1 = "UPDATE users SET stan_konta = stan_konta - $points "
          . "WHERE id = {$_SESSION['zalogowany']['Id']}";
         
  if(!$this->dbo->query($query1)){
    $this->setMessage('Bd serwera. Transfer nie zosta wykonany.');
    //$this->dbo->rollback();
    return ACTION_FAILED;
  }
  
  $query2 = "UPDATE users SET stan_konta = stan_konta + $points "
          . "WHERE id = $userid";
  
  if(!$this->dbo->query($query2)){
    $this->setMessage('Bd serwera. Transfer nie zosta wykonany.');
    //$this->dbo->rollback();
    return ACTION_FAILED;
  }
  
  //zatwierdzenie transakcji
  $this->dbo->commit();
  
  $this->setMessage('Transfer zosta wykonany.');
  return ACTION_OK;
}